When emulating ptc.ga, VMM needs to change pta temporarily,
which cause VHPT is not mapped by TR, then vhpt fault may
happen inside VMM, it is not correct.
This patch is to fix this issue.
When changing pta, VMM makes VHPT disabled temporarily.
Signed-off-by: Anthony Xu <anthony.xu@intel.com>
moldrid = ia64_get_rr(0x0);
ia64_set_rr(0x0,vrrtomrr(v,args->rid));
mpta = ia64_get_pta();
- ia64_set_pta(v->arch.arch_vmx.mpta);
+ ia64_set_pta(v->arch.arch_vmx.mpta&(~1));
ia64_srlz_d();
vmx_vcpu_ptc_l(v, args->vadr, args->ps);
VMX(v, vrr[0]) = oldrid;
/* Try again if VCPU has migrated. */
} while (proc != v->processor);
}
+ else if(v == vcpu)
+ vmx_vcpu_ptc_l(v, va, ps);
else
ptc_ga_remote_func(&args);
}